Error-correcting codes are well-known for use in storage or transmission systems to be able to detect and correct at least one error that may have occurred during the storing/reading or transmission of a word. The word (information symbol) typically includes a plurality of bits, e.g. 32 bits. One or more symbols are grouped together into a codeword. An error correcting code generates additional information that is usually referred to as a parity symbol(s). The entire code word (information symbols and parity symbol) is then stored/transmitted. Advanced error correcting codes are based on calculations in finite fields, such as Galois Fields (e.g. GF(2n)). A well-known error correction code is the Reed-Solomon code. Typically the codes are calculated before storing/transmitting and checked after reading/receiving using custom-designed hardware for executing the specific finite field calculations. In many applications a microcontroller or digital signal processor is available, however these processors usually do have hardware support for such operations. In itself it is known how finite field calculations can be performed using other operations of such conventional processors, often by table lookup. For most applications that is not practically possible since performing the conventional finite field calculations using integer operations requires too many processing cycles and is thus too slow. For low-cost applications the costs of the additional specific hardware is a problem.